package com.baizhi.service.impl;

import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import com.baizhi.mapper.CmfzGuruDAO;
import com.baizhi.entity.CmfzGuru;
import com.baizhi.service.CmfzGuruService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

@Service
public class CmfzGuruServiceImpl implements CmfzGuruService {
    @Autowired
    private CmfzGuruDAO cmfzGuruDAO;

    /**
     * easypoi导出
     */

    @Override
    public Page<CmfzGuru> selectAll(Integer page, Integer limit, String nickname) {
        if (nickname==null){
            Page<CmfzGuru> guruPage =
                    cmfzGuruDAO.selectPage(new Page<CmfzGuru>(page, limit), null);
            return guruPage;
        }else {
            QueryWrapper<CmfzGuru> queryWrapper = new QueryWrapper<>();
//       将 where nickname = zhangsan 等值查询 这个条件封装到 条件构造器
            queryWrapper.like("guru_nickname", nickname);
            Page<CmfzGuru> guruPage =
                    cmfzGuruDAO.selectPage(new Page<CmfzGuru>(page, limit), queryWrapper);
            return guruPage;
        }
    }

    @Override
    public int insert(CmfzGuru cmfzGuru) {
        int insert = cmfzGuruDAO.insert(cmfzGuru);
        return insert;
    }

    @Override
    public int updateGuruStatus(CmfzGuru cmfzGuru) {
        UpdateWrapper<CmfzGuru> updateWrapper = new UpdateWrapper<>();
        //set guru_status = ''  where guru_id = cmfzGuru.getGuruId()
        updateWrapper.set("guru_status", cmfzGuru.getGuruStatus());
        updateWrapper.eq("guru_id", cmfzGuru.getGuruId());
        int update = cmfzGuruDAO.update(null, updateWrapper);
        return update;
    }

    @Override
    public void downloadAll() throws IOException {
        List<CmfzGuru> cmfzGurus = cmfzGuruDAO.selectList(null);
        /**
         * 导出参数对象
         * 参数1 标题
         * 参数2 表的名字
         */
        ExportParams exportParams = new ExportParams("所有上师数据","gurus");
        /**
         * exportExcel 导出Excel文件
         * 参数1 导出参数对象
         * 参数2 要导出的实体类的类对象
         * 参数3 要导出的数据 需要一个集合  数据库查询出来的上师对象的集合
         *
         * 返回值就是封装好的文件对象 可以直接写出
         */

        Workbook workbook = ExcelExportUtil.exportExcel(exportParams, CmfzGuru.class, cmfzGurus);

        workbook.write(new FileOutputStream("C:\\img\\aaa.xls"));
    }
}
